/*
Copyright (C) 1997-2001 Id Software, Inc.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/
/*
** QGL.H
*/

#ifndef __QGL_H__
#define __QGL_H__

extern "C"
{
QGL_EXTERN	qboolean QGL_Init2( const char *dllname );
QGL_EXTERN	void     QGL_Shutdown2( void );
QGL_EXTERN	void	 *qglGetProcAddress( const char * );
void QGL_EnableLogging2 (bool enable);
void QGL_LogPrintf2 (const char *fmt, ...);

QGL_EXTERN GLvoid			(APIENTRY * qglAccum)(GLenum op, GLfloat value);
QGL_EXTERN GLvoid			(APIENTRY * qglAlphaFunc)(GLenum func, GLclampf ref);
QGL_EXTERN GLboolean		(APIENTRY * qglAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
QGL_EXTERN GLvoid			(APIENTRY * qglArrayElement)(GLint i);
QGL_EXTERN GLvoid			(APIENTRY * qglBegin)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglBindTexture)(GLenum target, GLuint texture);
QGL_EXTERN GLvoid			(APIENTRY * qglBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
QGL_EXTERN GLvoid			(APIENTRY * qglBlendFunc)(GLenum sfactor, GLenum dfactor);
QGL_EXTERN GLvoid			(APIENTRY * qglCallList)(GLuint list);
QGL_EXTERN GLvoid			(APIENTRY * qglCallLists)(GLsizei n, GLenum type, const GLvoid *lists);
QGL_EXTERN GLvoid			(APIENTRY * qglClear)(GLbitfield mask);
QGL_EXTERN GLvoid			(APIENTRY * qglClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglClearDepth)(GLclampd depth);
QGL_EXTERN GLvoid			(APIENTRY * qglClearIndex)(GLfloat c);
QGL_EXTERN GLvoid			(APIENTRY * qglClearStencil)(GLint s);
QGL_EXTERN GLvoid			(APIENTRY * qglClipPlane)(GLenum plane, const GLdouble *equation);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3b)(GLbyte red, GLbyte green, GLbyte blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3bv)(const GLbyte *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3d)(GLdouble red, GLdouble green, GLdouble blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3f)(GLfloat red, GLfloat green, GLfloat blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3i)(GLint red, GLint green, GLint blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3s)(GLshort red, GLshort green, GLshort blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3ubv)(const GLubyte *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3ui)(GLuint red, GLuint green, GLuint blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3uiv)(const GLuint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3us)(GLushort red, GLushort green, GLushort blue);
QGL_EXTERN GLvoid			(APIENTRY * qglColor3usv)(const GLushort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4bv)(const GLbyte *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4ubv)(const GLubyte *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4uiv)(const GLuint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColor4usv)(const GLushort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
QGL_EXTERN GLvoid			(APIENTRY * qglColorMaterial)(GLenum face, GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
QGL_EXTERN GLvoid			(APIENTRY * qglCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
QGL_EXTERN GLvoid			(APIENTRY * qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
QGL_EXTERN GLvoid			(APIENTRY * qglCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
QGL_EXTERN GLvoid			(APIENTRY * qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
QGL_EXTERN GLvoid			(APIENTRY * qglCullFace)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglDeleteLists)(GLuint list, GLsizei range);
QGL_EXTERN GLvoid			(APIENTRY * qglDeleteTextures)(GLsizei n, const GLuint *textures);
QGL_EXTERN GLvoid			(APIENTRY * qglDepthFunc)(GLenum func);
QGL_EXTERN GLvoid			(APIENTRY * qglDepthMask)(GLboolean flag);
QGL_EXTERN GLvoid			(APIENTRY * qglDepthRange)(GLclampd zNear, GLclampd zFar);
QGL_EXTERN GLvoid			(APIENTRY * qglDisable)(GLenum cap);
QGL_EXTERN GLvoid			(APIENTRY * qglDisableClientState)(GLenum array);
QGL_EXTERN GLvoid			(APIENTRY * qglDrawArrays)(GLenum mode, GLint first, GLsizei count);
QGL_EXTERN GLvoid			(APIENTRY * qglDrawBuffer)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
QGL_EXTERN GLvoid			(APIENTRY * qglDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglEdgeFlag)(GLboolean flag);
QGL_EXTERN GLvoid			(APIENTRY * qglEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglEdgeFlagv)(const GLboolean *flag);
QGL_EXTERN GLvoid			(APIENTRY * qglEnable)(GLenum cap);
QGL_EXTERN GLvoid			(APIENTRY * qglEnableClientState)(GLenum array);
QGL_EXTERN GLvoid			(APIENTRY * qglEnd)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglEndList)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord1d)(GLdouble u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord1dv)(const GLdouble *u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord1f)(GLfloat u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord1fv)(const GLfloat *u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord2d)(GLdouble u, GLdouble v);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord2dv)(const GLdouble *u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord2f)(GLfloat u, GLfloat v);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalCoord2fv)(const GLfloat *u);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalMesh1)(GLenum mode, GLint i1, GLint i2);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalPoint1)(GLint i);
QGL_EXTERN GLvoid			(APIENTRY * qglEvalPoint2)(GLint i, GLint j);
QGL_EXTERN GLvoid			(APIENTRY * qglFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer);
QGL_EXTERN GLvoid			(APIENTRY * qglFinish)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglFlush)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglFogf)(GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglFogfv)(GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglFogi)(GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglFogiv)(GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglFrontFace)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
QGL_EXTERN GLuint			(APIENTRY * qglGenLists)(GLsizei range);
QGL_EXTERN GLvoid			(APIENTRY * qglGenTextures)(GLsizei n, GLuint *textures);
QGL_EXTERN GLvoid			(APIENTRY * qglGetBooleanv)(GLenum pname, GLboolean *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetClipPlane)(GLenum plane, GLdouble *equation);
QGL_EXTERN GLvoid			(APIENTRY * qglGetDoublev)(GLenum pname, GLdouble *params);
QGL_EXTERN GLenum			(APIENTRY * qglGetError)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglGetFloatv)(GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetIntegerv)(GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetLightfv)(GLenum light, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetLightiv)(GLenum light, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetMapdv)(GLenum target, GLenum query, GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglGetMapfv)(GLenum target, GLenum query, GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglGetMapiv)(GLenum target, GLenum query, GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetMaterialiv)(GLenum face, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetPixelMapfv)(GLenum map, GLfloat *values);
QGL_EXTERN GLvoid			(APIENTRY * qglGetPixelMapuiv)(GLenum map, GLuint *values);
QGL_EXTERN GLvoid			(APIENTRY * qglGetPixelMapusv)(GLenum map, GLushort *values);
QGL_EXTERN GLvoid			(APIENTRY * qglGetPointerv)(GLenum pname, GLvoid* *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetPolygonStipple)(GLubyte *mask);
QGL_EXTERN const GLubyte *	(APIENTRY * qglGetString)(GLenum name);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexEnviv)(GLenum target, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexGeniv)(GLenum coord, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglHint)(GLenum target, GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexMask)(GLuint mask);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexd)(GLdouble c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexdv)(const GLdouble *c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexf)(GLfloat c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexfv)(const GLfloat *c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexi)(GLint c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexiv)(const GLint *c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexs)(GLshort c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexsv)(const GLshort *c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexub)(GLubyte c);
QGL_EXTERN GLvoid			(APIENTRY * qglIndexubv)(const GLubyte *c);
QGL_EXTERN GLvoid			(APIENTRY * qglInitNames)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLboolean		(APIENTRY * qglIsEnabled)(GLenum cap);
QGL_EXTERN GLboolean		(APIENTRY * qglIsList)(GLuint list);
QGL_EXTERN GLboolean		(APIENTRY * qglIsTexture)(GLuint texture);
QGL_EXTERN GLvoid			(APIENTRY * qglLightModelf)(GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglLightModelfv)(GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglLightModeli)(GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglLightModeliv)(GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglLightf)(GLenum light, GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglLightfv)(GLenum light, GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglLighti)(GLenum light, GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglLightiv)(GLenum light, GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglLineStipple)(GLint factor, GLushort pattern);
QGL_EXTERN GLvoid			(APIENTRY * qglLineWidth)(GLfloat width);
QGL_EXTERN GLvoid			(APIENTRY * qglListBase)(GLuint base);
QGL_EXTERN GLvoid			(APIENTRY * qglLoadIdentity)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglLoadMatrixd)(const GLdouble *m);
QGL_EXTERN GLvoid			(APIENTRY * qglLoadMatrixf)(const GLfloat *m);
QGL_EXTERN GLvoid			(APIENTRY * qglLoadName)(GLuint name);
QGL_EXTERN GLvoid			(APIENTRY * qglLogicOp)(GLenum opcode);
QGL_EXTERN GLvoid			(APIENTRY * qglMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
QGL_EXTERN GLvoid			(APIENTRY * qglMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
QGL_EXTERN GLvoid			(APIENTRY * qglMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
QGL_EXTERN GLvoid			(APIENTRY * qglMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
QGL_EXTERN GLvoid			(APIENTRY * qglMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
QGL_EXTERN GLvoid			(APIENTRY * qglMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
QGL_EXTERN GLvoid			(APIENTRY * qglMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
QGL_EXTERN GLvoid			(APIENTRY * qglMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
QGL_EXTERN GLvoid			(APIENTRY * qglMaterialf)(GLenum face, GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglMaterialfv)(GLenum face, GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglMateriali)(GLenum face, GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglMaterialiv)(GLenum face, GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglMatrixMode)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglMultMatrixd)(const GLdouble *m);
QGL_EXTERN GLvoid			(APIENTRY * qglMultMatrixf)(const GLfloat *m);
QGL_EXTERN GLvoid			(APIENTRY * qglNewList)(GLuint list, GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3bv)(const GLbyte *v);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3i)(GLint nx, GLint ny, GLint nz);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3s)(GLshort nx, GLshort ny, GLshort nz);
QGL_EXTERN GLvoid			(APIENTRY * qglNormal3sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
QGL_EXTERN GLvoid			(APIENTRY * qglPassThrough)(GLfloat token);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelStoref)(GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelStorei)(GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelTransferf)(GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelTransferi)(GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglPixelZoom)(GLfloat xfactor, GLfloat yfactor);
QGL_EXTERN GLvoid			(APIENTRY * qglPointSize)(GLfloat size);
QGL_EXTERN GLvoid			(APIENTRY * qglPolygonMode)(GLenum face, GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglPolygonOffset)(GLfloat factor, GLfloat units);
QGL_EXTERN GLvoid			(APIENTRY * qglPolygonStipple)(const GLubyte *mask);
QGL_EXTERN GLvoid			(APIENTRY * qglPopAttrib)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglPopClientAttrib)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglPopMatrix)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglPopName)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
QGL_EXTERN GLvoid			(APIENTRY * qglPushAttrib)(GLbitfield mask);
QGL_EXTERN GLvoid			(APIENTRY * qglPushClientAttrib)(GLbitfield mask);
QGL_EXTERN GLvoid			(APIENTRY * qglPushMatrix)(GLvoid);
QGL_EXTERN GLvoid			(APIENTRY * qglPushName)(GLuint name);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2d)(GLdouble x, GLdouble y);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2f)(GLfloat x, GLfloat y);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2i)(GLint x, GLint y);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2s)(GLshort x, GLshort y);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos2sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3i)(GLint x, GLint y, GLint z);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3s)(GLshort x, GLshort y, GLshort z);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos3sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
QGL_EXTERN GLvoid			(APIENTRY * qglRasterPos4sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglReadBuffer)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
QGL_EXTERN GLvoid			(APIENTRY * qglRectdv)(const GLdouble *v1, const GLdouble *v2);
QGL_EXTERN GLvoid			(APIENTRY * qglRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
QGL_EXTERN GLvoid			(APIENTRY * qglRectfv)(const GLfloat *v1, const GLfloat *v2);
QGL_EXTERN GLvoid			(APIENTRY * qglRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
QGL_EXTERN GLvoid			(APIENTRY * qglRectiv)(const GLint *v1, const GLint *v2);
QGL_EXTERN GLvoid			(APIENTRY * qglRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
QGL_EXTERN GLvoid			(APIENTRY * qglRectsv)(const GLshort *v1, const GLshort *v2);
QGL_EXTERN GLint			(APIENTRY * qglRenderMode)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
QGL_EXTERN GLvoid			(APIENTRY * qglRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
QGL_EXTERN GLvoid			(APIENTRY * qglScaled)(GLdouble x, GLdouble y, GLdouble z);
QGL_EXTERN GLvoid			(APIENTRY * qglScalef)(GLfloat x, GLfloat y, GLfloat z);
QGL_EXTERN GLvoid			(APIENTRY * qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
QGL_EXTERN GLvoid			(APIENTRY * qglSelectBuffer)(GLsizei size, GLuint *buffer);
QGL_EXTERN GLvoid			(APIENTRY * qglShadeModel)(GLenum mode);
QGL_EXTERN GLvoid			(APIENTRY * qglStencilFunc)(GLenum func, GLint ref, GLuint mask);
QGL_EXTERN GLvoid			(APIENTRY * qglStencilMask)(GLuint mask);
QGL_EXTERN GLvoid			(APIENTRY * qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1d)(GLdouble s);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1f)(GLfloat s);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1i)(GLint s);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1s)(GLshort s);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord1sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2d)(GLdouble s, GLdouble t);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2f)(GLfloat s, GLfloat t);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2i)(GLint s, GLint t);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2s)(GLshort s, GLshort t);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord2sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3i)(GLint s, GLint t, GLint r);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3s)(GLshort s, GLshort t, GLshort r);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord3sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoord4sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglTexEnvf)(GLenum target, GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexEnvi)(GLenum target, GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexEnviv)(GLenum target, GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGend)(GLenum coord, GLenum pname, GLdouble param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGendv)(GLenum coord, GLenum pname, const GLdouble *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGenf)(GLenum coord, GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGeni)(GLenum coord, GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexGeniv)(GLenum coord, GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexParameteri)(GLenum target, GLenum pname, GLint param);
QGL_EXTERN GLvoid			(APIENTRY * qglTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
QGL_EXTERN GLvoid			(APIENTRY * qglTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
QGL_EXTERN GLvoid			(APIENTRY * qglTranslated)(GLdouble x, GLdouble y, GLdouble z);
QGL_EXTERN GLvoid			(APIENTRY * qglTranslatef)(GLfloat x, GLfloat y, GLfloat z);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2d)(GLdouble x, GLdouble y);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2f)(GLfloat x, GLfloat y);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2i)(GLint x, GLint y);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2s)(GLshort x, GLshort y);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex2sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3d)(GLdouble x, GLdouble y, GLdouble z);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3f)(GLfloat x, GLfloat y, GLfloat z);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3i)(GLint x, GLint y, GLint z);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3s)(GLshort x, GLshort y, GLshort z);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex3sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4dv)(const GLdouble *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4fv)(const GLfloat *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4i)(GLint x, GLint y, GLint z, GLint w);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4iv)(const GLint *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
QGL_EXTERN GLvoid			(APIENTRY * qglVertex4sv)(const GLshort *v);
QGL_EXTERN GLvoid			(APIENTRY * qglVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglViewport)(GLint x, GLint y, GLsizei width, GLsizei height);

QGL_EXTERN GLvoid			(APIENTRY * qglActiveTextureARB)(GLenum texture);
QGL_EXTERN GLvoid			(APIENTRY * qglClientActiveTextureARB)(GLenum texture);
QGL_EXTERN GLvoid			(APIENTRY * qglDrawRangeElementsEXT)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
QGL_EXTERN GLvoid			(APIENTRY * qglSelectTextureSGIS) (GLenum mode);

QGL_EXTERN GLvoid			(APIENTRY * qglBindBufferARB)(GLenum target, GLuint buffer);
QGL_EXTERN GLvoid			(APIENTRY * qglDeleteBuffersARB)(GLsizei n, const GLuint *buffers);
QGL_EXTERN GLvoid			(APIENTRY * qglGenBuffersARB)(GLsizei n, GLuint *buffers);
QGL_EXTERN GLvoid			(APIENTRY * qglBufferDataARB)(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
QGL_EXTERN GLvoid			(APIENTRY * qglBufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
QGL_EXTERN GLvoid *			(APIENTRY * qglMapBufferARB)(GLenum target, GLenum access);
QGL_EXTERN GLboolean		(APIENTRY * qglUnmapBufferARB)(GLenum target);

QGL_EXTERN GLvoid			(APIENTRY * qglBindAttribLocationARB) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
QGL_EXTERN GLvoid			(APIENTRY * qglGetActiveAttribARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
QGL_EXTERN GLint			(APIENTRY * qglGetAttribLocationARB) (GLhandleARB programObj, const GLcharARB *name);

QGL_EXTERN GLvoid			(APIENTRY * qglVertexAttribPointerARB)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
QGL_EXTERN GLvoid			(APIENTRY * qglEnableVertexAttribArrayARB)(GLuint index);
QGL_EXTERN GLvoid			(APIENTRY * qglDisableVertexAttribArrayARB)(GLuint index);

QGL_EXTERN GLvoid			(APIENTRY * qglDeleteObjectARB) (GLhandleARB obj);
QGL_EXTERN GLhandleARB		(APIENTRY * qglGetHandleARB) (GLenum pname);
QGL_EXTERN GLvoid			(APIENTRY * qglDetachObjectARB) (GLhandleARB containerObj, GLhandleARB attachedObj);
QGL_EXTERN GLhandleARB		(APIENTRY * qglCreateShaderObjectARB) (GLenum shaderType);
QGL_EXTERN GLvoid		    (APIENTRY * qglShaderSourceARB) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
QGL_EXTERN GLvoid			(APIENTRY * qglCompileShaderARB) (GLhandleARB shaderObj);
QGL_EXTERN GLhandleARB		(APIENTRY * qglCreateProgramObjectARB) (void);
QGL_EXTERN GLvoid			(APIENTRY * qglAttachObjectARB) (GLhandleARB containerObj, GLhandleARB obj);
QGL_EXTERN GLvoid			(APIENTRY * qglLinkProgramARB) (GLhandleARB programObj);
QGL_EXTERN GLvoid			(APIENTRY * qglUseProgramObjectARB) (GLhandleARB programObj);
QGL_EXTERN GLvoid			(APIENTRY * qglValidateProgramARB) (GLhandleARB programObj);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform1fARB) (GLint location, GLfloat v0);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform2fARB) (GLint location, GLfloat v0, GLfloat v1);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform3fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform4fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform1iARB) (GLint location, GLint v0);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform2iARB) (GLint location, GLint v0, GLint v1);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform3iARB) (GLint location, GLint v0, GLint v1, GLint v2);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform4iARB) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform1fvARB) (GLint location, GLsizei count, const GLfloat *value);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform2fvARB) (GLint location, GLsizei count, const GLfloat *value);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform3fvARB) (GLint location, GLsizei count, const GLfloat *value);
QGL_EXTERN GLvoid			(APIENTRY * qglUniform4fvARB) (GLint location, GLsizei count, const GLfloat *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniform1ivARB) (GLint location, GLsizei count, const GLint *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniform2ivARB) (GLint location, GLsizei count, const GLint *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniform3ivARB) (GLint location, GLsizei count, const GLint *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniform4ivARB) (GLint location, GLsizei count, const GLint *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniformMatrix2fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniformMatrix3fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
QGL_EXTERN GLvoid           (APIENTRY * qglUniformMatrix4fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
QGL_EXTERN GLvoid           (APIENTRY * qglGetObjectParameterfvARB) (GLhandleARB obj, GLenum pname, GLfloat *params);
QGL_EXTERN GLvoid           (APIENTRY * qglGetObjectParameterivARB) (GLhandleARB obj, GLenum pname, GLint *params);
QGL_EXTERN GLvoid           (APIENTRY * qglGetInfoLogARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
QGL_EXTERN GLvoid           (APIENTRY * qglGetAttachedObjectsARB) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
QGL_EXTERN GLint            (APIENTRY * qglGetUniformLocationARB) (GLhandleARB programObj, const GLcharARB *name);
QGL_EXTERN GLvoid           (APIENTRY * qglGetActiveUniformARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
QGL_EXTERN GLvoid           (APIENTRY * qglGetUniformfvARB) (GLhandleARB programObj, GLint location, GLfloat *params);
QGL_EXTERN GLvoid           (APIENTRY * qglGetUniformivARB) (GLhandleARB programObj, GLint location, GLint *params);
QGL_EXTERN GLvoid           (APIENTRY * qglGetShaderSourceARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);

QGL_EXTERN GLvoid			(APIENTRY * qglActiveStencilFaceEXT)(GLenum face);

QGL_EXTERN GLvoid			(APIENTRY * qglStencilOpSeparateATI)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
QGL_EXTERN GLvoid			(APIENTRY * qglStencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);

QGL_EXTERN GLvoid			(APIENTRY * qglDepthBoundsEXT)(GLclampd zmin, GLclampd zmax);

QGL_EXTERN GLvoid			(APIENTRY * qglUnlockArraysEXT) ();
QGL_EXTERN GLvoid			(APIENTRY * qglLockArraysEXT) (int , int);
QGL_EXTERN GLvoid			(APIENTRY * qglPointParameterfEXT) (GLenum param, GLfloat value);
QGL_EXTERN GLvoid			(APIENTRY * qglPointParameterfvEXT) (GLenum param, const GLfloat *value);
QGL_EXTERN GLvoid			(APIENTRY * qglMTexCoord2fSGIS) (GLenum, GLfloat, GLfloat);

QGL_EXTERN int 			(APIENTRY * qwglChoosePixelFormat) (HDC, CONST PIXELFORMATDESCRIPTOR *);
QGL_EXTERN int 			(APIENTRY * qwglDescribePixelFormat) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
QGL_EXTERN BOOL			(APIENTRY * qwglSetPixelFormat) (HDC, int, CONST PIXELFORMATDESCRIPTOR *);
QGL_EXTERN BOOL			(APIENTRY * qwglSwapBuffers) (HDC);
QGL_EXTERN HGLRC			(APIENTRY * qwglCreateContext) (HDC);
QGL_EXTERN BOOL			(APIENTRY * qwglDeleteContext) (HGLRC);
QGL_EXTERN BOOL			(APIENTRY * qwglMakeCurrent) (HDC, HGLRC);
QGL_EXTERN PROC			(APIENTRY * qwglGetProcAddress) (LPCSTR);
QGL_EXTERN BOOL			(APIENTRY * qwglSwapIntervalEXT) (int);
#ifdef UNDEF_QGL_WGL
#undef QGL_WGL
#undef UNDEF_QGL_WGL
#endif

// WGL_EXT Functions
#ifndef QGL_WGL_EXT
#define QGL_WGL_EXT(type, name, params)
#define UNDEF_QGL_WGL_EXT
#endif
QGL_WGL_EXT(BOOL, wglSwapIntervalEXT, (int interval))
}

//typedef int GLintptrARB;
//typedef int GLsizeiptrARB;
#endif // __QGL_H__

#ifndef APIENTRY
#define APIENTRY
#endif
#ifndef WINAPI
#define WINAPI
#endif


#ifndef __linux__
/*
** extension constants
*/
#define GL_POINT_SIZE_MIN_EXT				0x8126
#define GL_POINT_SIZE_MAX_EXT				0x8127
#define GL_POINT_FADE_THRESHOLD_SIZE_EXT	0x8128
#define GL_DISTANCE_ATTENUATION_EXT			0x8129

#define GL_TEXTURE0_ARB						0x84C0
#define GL_TEXTURE1_ARB						0x84C1
#endif //n _linux

#define GL_TEXTURE0_SGIS					0x835E
#define GL_TEXTURE1_SGIS					0x835F

#ifndef GL_MAX_TEXTURE_UNITS
#define GL_MAX_TEXTURE_UNITS				0x84E2
#endif

#ifndef GL_POLYGON_OFFSET
#define GL_POLYGON_OFFSET					0x8037

#endif /* GL_POLYGON_OFFSET */

#ifndef GL_NV_texture_rectangle
#define GL_NV_texture_rectangle
#define GL_TEXTURE_RECTANGLE_NV				0x84F5
#define GL_TEXTURE_BINDING_RECTANGLE_NV		0x84F6
#define GL_PROXY_TEXTURE_RECTANGLE_NV		0x84F7
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV	0x84F8
#endif

#ifndef GL_EXT_texture_filter_anisotropic
#define GL_EXT_texture_filter_anisotropic
#define GL_TEXTURE_MAX_ANISOTROPY_EXT		0x84FE
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT	0x84FF
#endif

/* GL_ARB_texture_compression */
#ifndef GL_ARB_texture_compression
#define GL_ARB_texture_compression

#define GL_COMPRESSED_ALPHA_ARB								0x84E9
#define GL_COMPRESSED_LUMINANCE_ARB							0x84EA
#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB					0x84EB
#define GL_COMPRESSED_INTENSITY_ARB							0x84EC
#define GL_COMPRESSED_RGB_ARB								0x84ED
#define GL_COMPRESSED_RGBA_ARB								0x84EE
#define GL_TEXTURE_COMPRESSION_HINT_ARB						0x84EF
#define GL_TEXTURE_image_tIZE_ARB							0x86A0
#define GL_TEXTURE_COMPRESSED_ARB							0x86A1
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB				0x86A2
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB					0x86A3
#endif /* GL_ARB_texture_compression */

#ifndef GL_SGIS_generate_mipmap
#define GL_SGIS_generate_mipmap 1
#define GL_GENERATE_MIPMAP_SGIS           0x8191
#define GL_GENERATE_MIPMAP_HINT_SGIS      0x8192
#endif

#ifndef QGL_FUNC
#define QGL_FUNC(type, name, params)
#define UNDEF_QGL_FUNC
#endif

QGL_FUNC(void, glAlphaFunc, (GLenum func, GLclampf ref))
QGL_FUNC(void, glArrayElement, (GLint i))
QGL_FUNC(void, glBegin, (GLenum mode))
QGL_FUNC(void, glBindTexture, (GLenum target, GLuint texture))
QGL_FUNC(void, glBlendFunc, (GLenum sfactor, GLenum dfactor))
QGL_FUNC(void, glClear, (GLbitfield mask))
QGL_FUNC(void, glClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha))
QGL_FUNC(void, glClearDepth, (GLclampd depth))
QGL_FUNC(void, glClearStencil, (GLint s))
QGL_FUNC(void, glClipPlane, (GLenum plane, const GLdouble *equation))
QGL_FUNC(void, glColor3f, (GLfloat red, GLfloat green, GLfloat blue))
QGL_FUNC(void, glColor3fv, (const GLfloat *v))
QGL_FUNC(void, glColor3ubv, (const GLubyte *v))
QGL_FUNC(void, glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha))
QGL_FUNC(void, glColor4fv, (const GLfloat *v))
QGL_FUNC(void, glColor4ubv, (const GLubyte *v))
QGL_FUNC(void, glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha))
QGL_FUNC(void, glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
QGL_FUNC(void, glCullFace, (GLenum mode))
QGL_FUNC(void, glDeleteTextures, (GLsizei n, const GLuint *textures))
QGL_FUNC(void, glDepthFunc, (GLenum func))
QGL_FUNC(void, glDepthMask, (GLboolean flag))
QGL_FUNC(void, glDepthRange, (GLclampd zNear, GLclampd zFar))
QGL_FUNC(void, glDisable, (GLenum cap))
QGL_FUNC(void, glDisableClientState, (GLenum array))
QGL_FUNC(void, glDrawBuffer, (GLenum mode))
QGL_FUNC(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices))
QGL_FUNC(void, glEnable, (GLenum cap))
QGL_FUNC(void, glEnableClientState, (GLenum array))
QGL_FUNC(void, glEnd, (void))
QGL_FUNC(void, glFinish, (void))
QGL_FUNC(void, glFlush, (void))
QGL_FUNC(void, glFrontFace, (GLenum mode))
QGL_FUNC(GLenum, glGetError, (void))
QGL_FUNC(void, glGetFloatv, (GLenum pname, GLfloat *params))
QGL_FUNC(void, glGetIntegerv, (GLenum pname, GLint *params))
QGL_FUNC(const GLubyte *, glGetString, (GLenum name))
QGL_FUNC(void, glLoadIdentity, (void))
QGL_FUNC(void, glLoadMatrixf, (const GLfloat *m))
QGL_FUNC(void, glMatrixMode, (GLenum mode))
QGL_FUNC(void, glNormalPointer, (GLenum type, GLsizei stride, const GLvoid *pointer))
QGL_FUNC(void, glOrtho, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar))
QGL_FUNC(void, glPolygonMode, (GLenum face, GLenum mode))
QGL_FUNC(void, glPolygonOffset, (GLfloat factor, GLfloat units))
QGL_FUNC(void, glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels))
QGL_FUNC(void, glScissor, (GLint x, GLint y, GLsizei width, GLsizei height))
QGL_FUNC(void, glShadeModel, (GLenum mode))
QGL_FUNC(void, glStencilFunc, (GLenum func, GLint ref, GLuint mask))
QGL_FUNC(void, glStencilMask, (GLuint mask))
QGL_FUNC(void, glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass))
QGL_FUNC(void, glTexCoord2f, (GLfloat s, GLfloat t))
QGL_FUNC(void, glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
//QGL_FUNC(void, glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params))
QGL_FUNC(void, glTexEnvi, (GLenum target, GLenum pname, GLint param))
//QGL_FUNC(void, glTexEnvf, (GLenum target, GLenum pname, GLfloat param))
//QGL_FUNC(void, glTexGenfv, (GLenum coord, GLenum pname, const GLfloat *params))
//QGL_FUNC(void, glTexGeni, (GLenum coord, GLenum pname, GLint param))
QGL_FUNC(void, glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels))
QGL_FUNC(void, glTexParameteri, (GLenum target, GLenum pname, GLint param))
QGL_FUNC(void, glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels))
QGL_FUNC(void, glVertex2f, (GLfloat x, GLfloat y))
QGL_FUNC(void, glVertex3f, (GLfloat x, GLfloat y, GLfloat z))
QGL_FUNC(void, glVertex3fv, (const GLfloat *v))
QGL_FUNC(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
QGL_FUNC(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
QGL_FUNC(void, glTranslatef, (GLfloat x, GLfloat y, GLfloat z))
QGL_FUNC(void, glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z))
QGL_FUNC(void, glTexCoord2i, (GLint s, GLint t))
QGL_FUNC(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count))
QGL_FUNC(void, glPointSize, (GLfloat size))
QGL_FUNC(void, glFogf, (GLenum pname, GLfloat param))
QGL_FUNC(void, glFogfv, (GLenum pname, const GLfloat *params))
QGL_FUNC(void, glFogi, (GLenum pname, GLint param))
QGL_FUNC(void, glFogiv, (GLenum pname, const GLint *params))
QGL_FUNC(void, glGenTextures, (GLsizei n, GLuint *textures))
QGL_FUNC(void, glCopyTexImage2D, (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border))
QGL_FUNC(void, glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset , GLint yoffset , GLint x , GLint y , GLsizei width , GLsizei height))
QGL_FUNC(void, glHint, (GLenum target, GLenum mode))
QGL_FUNC(void, glTexCoord2fv, (const GLfloat *v))
QGL_FUNC(void, glVertex2i, (GLint x, GLint y))
QGL_FUNC(void, glPopMatrix, (void))
QGL_FUNC(void, glPushMatrix, (void))
QGL_FUNC(void, glLineStipple, (GLint factor, GLushort pattern))
QGL_FUNC(void, glLineWidth, (GLfloat width))
#ifdef UNDEF_QGL_FUNC
#undef QGL_FUNC
#undef UNDEF_QGL_FUNC
#endif

#ifndef QGL_EXT
#define QGL_EXT(type, name, params)
#define UNDEF_QGL_EXT
#endif
QGL_EXT(void, glLockArraysEXT, (int , int ))
QGL_EXT(void, glUnlockArraysEXT, (void))
QGL_EXT(void, glSelectTextureSGIS, (GLenum ))
QGL_EXT(void, glActiveTextureARB, (GLenum ))
QGL_EXT(void, glClientActiveTextureARB, (GLenum ))
QGL_EXT(void, glDrawRangeElementsEXT, (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *))
QGL_EXT(void, glPointParameterfEXT, (GLenum param, GLfloat value))
QGL_EXT(void, glPointParameterfvEXT, (GLenum param, const GLfloat *value))
QGL_EXT(void, glMTexCoord2fSGIS, (GLenum, GLfloat, GLfloat ))
#ifdef UNDEF_QGL_EXT
#undef QGL_EXT
#undef UNDEF_QGL_EXT
#endif

// WGL Functions
#ifndef QGL_WGL
#define QGL_WGL(type, name, params)
#define UNDEF_QGL_WGL
#endif
QGL_WGL(int, wglChoosePixelFormat, (HDC, CONST PIXELFORMATDESCRIPTOR *))
QGL_WGL(int, wglDescribePixelFormat, (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR))
QGL_WGL(BOOL, wglSetPixelFormat, (HDC, int, CONST PIXELFORMATDESCRIPTOR *))
QGL_WGL(BOOL, wglSwapBuffers, (HDC))
QGL_WGL(HGLRC, wglCreateContext, (HDC))
QGL_WGL(BOOL, wglDeleteContext, (HGLRC))
QGL_WGL(BOOL, wglMakeCurrent, (HDC, HGLRC))
QGL_WGL(PROC, wglGetProcAddress, (LPCSTR))
#ifdef UNDEF_QGL_WGL
#undef QGL_WGL
#undef UNDEF_QGL_WGL
#endif

// WGL_EXT Functions
#ifndef QGL_WGL_EXT
#define QGL_WGL_EXT(type, name, params)
#define UNDEF_QGL_WGL_EXT
#endif
QGL_WGL_EXT(BOOL, wglSwapIntervalEXT, (int interval))
//QGL_WGL_EXT(BOOL, wglGetDeviceGammaRamp3DFX, (HDC, WORD *))
//QGL_WGL_EXT(BOOL, wglSetDeviceGammaRamp3DFX, (HDC, WORD *))
#ifdef UNDEF_QGL_WGL_EXT
#undef QGL_WGL_EXT
#undef UNDEF_QGL_WGL_EXT
#endif

// GLX Functions
#ifndef QGL_GLX
#define QGL_GLX(type, name, params)
#define UNDEF_GLX
#endif
#ifndef USE_SDL
QGL_GLX(XVisualInfo *, glXChooseVisual, (Display *dpy, int screen, int *attribList))
QGL_GLX(GLXContext, glXCreateContext, (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct))
QGL_GLX(void, glXDestroyContext, (Display *dpy, GLXContext ctx))
QGL_GLX(Bool, glXMakeCurrent, (Display *dpy, GLXDrawable drawable, GLXContext ctx))
QGL_GLX(Bool, glXCopyContext, (Display *dpy, GLXContext src, GLXContext dst, GLuint mask))
QGL_GLX(Bool, glXSwapBuffers, (Display *dpy, GLXDrawable drawable))
QGL_GLX(int, glXGetConfig, (Display *dpy, XVisualInfo *vis, int attrib, int *value))
//QGL_GLX(void *, glXGetProcAddressARB, (const GLubyte *procName))
#endif
#ifdef UNDEF_GLX
#undef QGL_GLX
#undef UNDEF_GLX
#endif

// GLX_EXT Functions